import { Application } from 'egg'
const user = (app: Application) => {
  const { STRING, INTEGER } = app.Sequelize
  // primaryKey  是否唯一值，一般用id
  // autoIncrement  是否自动增加，一般id字段用
  // allowNull  是否为空  默认false可以不为空
  const User = app.model.define(
    'users',
    {
      id: {
        type: INTEGER, // INTEGER就是mysql中的int
        primaryKey: true,
        autoIncrement: true, // 自动增长
      },
      // 一般非id可以这么写
      user_name: STRING(150), // 简写=跟下面password
      password: {
        type: STRING(100),
        allowNull: false,
      },
    },
    {
      // tableName: 'users',
      // freezeTableName: true, // 只要你使用了freezeTableName，程序就不会自动给你加上s了
      // timestamps: false, // 去除createAt updateAt
      createdAt: true, // 是否启用created_at
      updatedAt: false, // 表示不启用updated_at
      // 使用自定义表名之后上面写的users就直接就是你的表名，如果不加的话，你就可以写user，但是自己的表名为users，程序会自动将s加上
    },
  )
  return User
}

export default user
